import { createApp } from 'vue'
import App from './App.vue'
import store from './store'
import router from './router'
import './router/permission'
import { useRuntime } from './hooks/useGlobal'

// 懒加载指令
import { dulazy } from '@/utils/directive'
// 解决 v-html xss攻击
import VueDOMPurifyHTML from 'vue-dompurify-html'
// echarts按需引入
import './assets/js/echartsInit.js'

// 重置样式
import 'normalize.css'
import './assets/styles/reset.scss' // 引入自定义重置样式
import './assets/styles/page.scss'
import 'amfe-flexible'

// vant函数组件所需的样式
// import 'vant/lib/index.css' // 这是全部的css样式
import 'vant/es/toast/style'
import 'vant/es/notify/style'

const app = createApp(App)

// 全局指令
app.directive('du-lazy', dulazy)

// 安装store
app.use(store)

// 安装路由
app.use(router)

// 解决 v-html xss攻击
app.use(VueDOMPurifyHTML)

// 读取public/runtime/config.json配置文件
const { getRuntimeConfig } = useRuntime()
getRuntimeConfig().then((res) => {
  app.config.globalProperties.$config = res
  document.title = res.systemTitle
  app.mount('#app')
})
